package com.cskaoyan._02use;

/**
 * @description:
 * @author: 景天
 * @date: 2023/1/30 10:58
 **/

/*
方法的声明
[修饰符列表] 返回值类型 方法名 (形式参数列表){
	// 方法体
}

2个概念:
方法头(方法声明):[修饰符列表] 返回值类型 方法名 (形式参数列表)
方法签名(method signature):方法名 (形式参数列表)


逐一解释:
    修饰符列表:
        可以为空, 参照main方法 public static (先按照固定写法)
    返回值类型:
        方法执行会有一个结果,这个结果就是返回值
        表示的是方法的返回值的数据类型
        数据类型可以是基本数据类型,也可以是引用数据类型
        返回的时候结合return  return + 值(常量,变量,表达式)
        返回值的数据类型要跟方法声明的返回值类型要一致或者兼容
    方法名:
        用标识符标识方法,给方法起个名字
        使用小驼峰命名,第一个单词首字母小写,剩余单词首字母大写
        起名字的时候最好见名知意
     形式参数列表:
        简称形参,作用告诉方法,需要什么数据类型的参数,有多少个参数
        形式参数可以是基本数据类型,也可以是引用数据类型
        语法: (数据类型 参数名, 数据类型 参数名, ....)
        注意:
            形式参数的作用域仅在方法内部, 是一个局部变量
            形参中起重要作用的是参数的数据类型, 名字叫什么无所谓, 起到占位符的作用
     方法体:
        {}里面就是方法体,把要实现的功能的代码写进去

     方法间的关系:
        public static的方法是平行关系,进行方法调用的时候,跟方法的位置没有关系

 改进引例


 方法的调用:
    main方法是程序入口,先执行的是main方法
    调用别的方法要在main方法中直接或间接的方式调用
    static的方法使用的时候,可以直接使用方法名进行调用
    语法: 方法名(实际参数列表)
 */
public class Demo {
    public static void test() {

    }
    public static void main(String[] args) {

        //// 计算第一个值
        // 快捷键 Ctrl + alt+ m 作用 把一段代码抽取成一个方法
        getSum2();
        //// 计算第二个值
        //
        int num3 = 111;
        int num4 = 222;
        // 生成方法 alt + enter
        int sum = getSum3(num3,num4);


        int sum2 = num3 + num4;

        //System.out.println("sum2 = " + sum2);
        //// 计算第三个值
        //int num5 = 333;
        //int num6 = 444;
        //int sum3 = num5 + num6;
        //System.out.println("sum3 = " + sum3);


        // 在main方法中调用别的方法
        // 方法名(实际参数列表)
        // Result of 'Demo.getSum()' is ignored
        // 方法调用会产生一个结果,对结果进行处理
        int sum3 = getSum(10, 20);
        System.out.println("sum = " + sum);

        int num1 = 111;
        int num2 = 222;
        int sum1 = getSum(num1, num2);
        System.out.println("sum1 = " + sum1);

        System.out.println(getSum(333, 444)+100);

    }

    private static int getSum3(int num3, int num4) {
        return 0;
    }

    private static void getSum2() {
        int num1 = 10;
        int num2 = 20;
        int sum1 = num1 + num2;
        System.out.println("sum1 = " + sum1);
    }

    // 通过方法进行改进
    public static int getSum(int num1, int num2) {
        // 方法体
        // Missing return statement
        // 返回
        // return 10;
        //int sum = num1 + num2;
        //return sum;
        return num1 + num2;
    }

    public static void test2() {

    }
}
